package InterfaceGraphique;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.io.File;
import javax.swing.JFileChooser;

import Principal.FichierGrapheIncorrectException;
import Principal.Graphe;

/**
 * classe codant la fenetre qui permet de charger un fichier en parcourant son ordinateur
 * @author bruno
 *
 */
public class FenetreChargement extends Fenetre {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * Constructeur de la fenetre (cf rapport pour explication du fonctionnement)
	 * @see JFileChooser
	 */
	public FenetreChargement(){
		Test.disable();
		JFileChooser jfc = new JFileChooser();
	    jfc.setVisible(true);
	    
	    int result = jfc.showOpenDialog(null);
	    switch (result) {
	    case JFileChooser.APPROVE_OPTION:
	    	File fichierEnCours = jfc.getSelectedFile();
			try {
				String s = fichierEnCours.getAbsolutePath();
				Test.g = new Graphe();
				Test.g.lireFichier(s);
				Test.charge = true;
				Test.f.load.setText("Graphe chargé !!!");
			} catch (FichierGrapheIncorrectException e) {
				Test.f.load.setText("Erreur chargement !!!");
			}
			finally{
				this.dispose();
				Test.reEnable();
				
				Test.f.load.setForeground(Color.black);
			}
			break;
	    case JFileChooser.CANCEL_OPTION:
	    	this.dispose();
			Test.reEnable();
	    	break;
	    case JFileChooser.ERROR_OPTION:
	    	this.dispose();
			Test.reEnable();
	    	break;
	    }
	}
	
	/**
	 * Méthode qui définit ce que le programme fera en fonction des boutons cliqués
	 * @param e l'action dont on peut récupérer la source vie e.getSource()
	 */
	@Override
	public void actionPerformed(ActionEvent e) {
	
	}

}
